package com.atguigu.juc1205.demo;

import java.util.concurrent.TimeUnit;

class Phone {

    public static synchronized void sendEmail() throws Exception {
        TimeUnit.SECONDS.sleep(4);
        System.out.println("发邮件");
    }

    public synchronized void sendSMS() throws Exception {

        System.out.println("发短信");
    }

    public void sayHello() throws Exception {
        System.out.println("sayHello");
    }
}

/**
 * @Author Joey
 * @Date 2021/9/24 10:09
 * @Description 8 lock
 *
 *  4s 邮件   普通同步 短信     普通 hello
 *
 * 1 标准访问，先邮件还是先短信                     邮件
 * 2 暂停 4s 邮件方法，先邮件还是先短信              短信
 * 3 新增普通 sayHello ，先邮件还是先hello        sayhello
 * 4 两部手机，先邮件还是先短信                     短信
 * 5 两个静态同步方法，一部手机，先邮件还是先短信      邮件
 * 6 两个静态同步方法，2 部手机，先邮件还是先短信      邮件
 * 7 一个静态同步方法，一个普通同步方法，一部手机，先邮件还是先短信    短信
 * 8 一个静态同步方法，一个普通同步方法，2 部手机，先邮件还是先短信    短信
 */
public class Lock8Demo05 {

    public static void main(String[] args) throws InterruptedException {
        Phone phone = new Phone();
        new Thread(() -> {
            try {
                Phone.sendEmail();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "A").start();

        TimeUnit.MICROSECONDS.sleep(100);

        new Thread(() -> {
            try {
                phone.sendSMS();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }, "B").start();
    }

}
